X-Git-Url: https://permondes.de/gitweb/Analog_Engine.git/blobdiff_plain/7fbf87e4750e1393d9b6395818b70000ca99c758..6e4089e8217c971c0154c414f5fed5d0807d179e:/scripts/TP1%2006.18%20Mass%20in%20Tube.AESL?ds=sidebyside diff --git a/scripts/TP1 06.18 Mass in Tube.AESL b/scripts/TP1 06.18 Mass in Tube.AESL new file mode 100644 index 0000000..e85e7c7 --- /dev/null +++ b/scripts/TP1 06.18 Mass in Tube.AESL @@ -0,0 +1,49 @@ +IDENTIFICATION DIVISION +PROGRAM-ID MassInTube +VERSION 20240214 +COMMENT A thin tube rotates at a constant angular velocity perpendicular to gravity +COMMENT A mass point moves frictionless in this tube. The differential equation gives the position of this mass point. +COMMENT r''=omega^2*r -g*sin(omega*t+phi0) + +ENVIRONMENT DIVISION +ENGINE Anabrid-THAT +TIMEBASE 1ms +REQUIRES COEFFICIENT 8, INTEGRATOR 4, INVERTER 1, MULTIPLIER 2 + +DATA DIVISION +OUTPUT OUTPUT.X x +OUTPUT OUTPUT.Y y +COEFFICIENT.1 ICw' +COEFFICIENT.2 ICw +COEFFICIENT.3 OMEGAC +COEFFICIENT.4 OMEGAS # same as OMEGAC +COEFFICIENT.5 G +COEFFICIENT.6 R0 # r(0) +COEFFICIENT.7 V0 # r'(0) +COEFFICIENT.8 OMEGA^2 # = OMEGAC*OMEGAS + +PROGRAM DIVISION +### Generating sin(omega*t+phi0) ### ++1 -> COEFFICIENT.ICw’ -> icw’ +-1 -> COEFFICIENT.ICw -> -icw +w’’, IC:icw’ -> INTEGRATOR -> -w’=-cos +-w' -> COEFFICIENT.OMEGAC -> -omega*w' +-omega*w', IC:-icw -> INTEGRATOR -> w=sin +w -> INVERTER -> -w=-sin +-w -> COEFFICIENT.OMEGAS -> -omega^2*w=w’’ + +### the actual problem ### +-sin -> COEFFICIENT.G -> -g*sin +-1 -> COEFFICIENT.R0 -> -r0 ++1 -> COEFFICIENT.V0 -> v0 +omega^2*r, -g*sin,IC:v0 -> INTEGRATOR -> -r' # input is r'' +-r',IC:-r0 -> INTEGRATOR -> r +r -> COEFFICIENT.OMEGA^2 -> omega^2*r + +### Converting r, phi to x,y coordinates for display ### +r, sin -> MULTIPLIER -> x +r, -cos -> MULTIPLIER -> y # y-axis shall go down according to gravity, thus negativ input + +OPERATION DIVISION +MODE REPEAT +OP-TIME 17,5ms